package 集合.MyList;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/*
List集合
    有序集合（序列），用户可以精确控制列表中每一个元素的插入位置，用户可以通过整数索引访问元素，并搜索列表中的元素
    与set集合不同，列表通常允许重复的元素

    特点：
        有序：存储和取出的元素顺序一致
        可重复：存储元素可以重复

    特有方法
        void add(int index,E element):在此集合中的指定位置插入指定元素
        E remove(int index):删除指定索引处的元素，返回被删除的元素
        E set(int index,E element):修改指定索引处的元素，返回被修改的元素
        E get(int index):返回指定索引处的元素

 */
public class ListDemo {
    public static void main(String[] args) {
        //创建集合对象
        List<String> list=new ArrayList<>();

        //添加元素
        list.add("hello");
        list.add("world");
        list.add("java");

        //void add(int index,E element):在此集合中的指定位置插入指定元素
        list.add(1,"javaee");
        //list.add(11,"javaee");//IndexOutOfBoundsException

        //E remove(int index):删除指定索引处的元素，返回被删除的元素
        list.remove(1);

        //E set(int index,E element):修改指定索引处的元素，返回被修改的元素
        System.out.println(list.set(1,"javaee"));

        //E get(int index):返回指定索引处的元素
        System.out.println(list.get(1));

        //输出集合
        System.out.println(list);

        //遍历1（通过迭代器遍历）
        Iterator<String> it=list.iterator();
        while (it.hasNext()){
            String s=it.next();
            System.out.println(s);
        }

        //遍历2（通过索引）
        for (int i=0;i<list.size();i++){
            String s=list.get(i);
            System.out.println(s);
        }
    }
}
